//----------------------------------------------------------
    // 日志消息模块
        //一个日志消息中应该有的内容
        //format:  时间、线程、日志器、级别、函数名、正文内容、源文件名：行号   
//----------------------------------------------------------

#ifndef __LOG_MESSAGE__
#define __LOG_MESSAGE__

#include "loglevel.hpp"
#include "util.hpp"
#include <ctime>
#include <pthread.h>
#include <thread>
#include <unistd.h>
#include <memory>



namespace ymbxlog
{
    // 日志消息模块
    class LogMes
    {
    public:
        using ptr = std::shared_ptr<LogMes>;
        LogMes() {}
        LogMes(size_t line,
               std::string loggername,
               std::string file,
               std::string func,
               std::string logmes,
               LogLevel::Level lev) : 
               _line(line), 
               _time(Util::Date::Now()), 
               _tid(std::this_thread::get_id()), 
               _loggername(loggername), 
               _file(file), 
               _func(func),
               _logmes(logmes), 
               _lev(lev) {}

    public:
        size_t _line;            // 行号
        time_t _time;            // 时间
        std::thread::id _tid;    // 线程id
        std::string _loggername; // 日志器名称
        std::string _file;       // 文件名
        std::string _func;       // 函数名
        std::string _logmes;     // 日志消息
        LogLevel::Level _lev;    // 日志等级
    };
};

#endif